﻿using GameFramework.Event;
using System;

namespace GFTest
{
    /// <summary>
    /// 显示Character事件
    /// </summary>
	public sealed class ShowCharacterEventArgs : GameEventArgs
	{
		/// <summary>
		/// Id
		/// </summary>
		public static readonly int EventId = typeof(ShowCharacterEventArgs).GetHashCode();

        /// <summary>
        /// 事件Id
        /// </summary>
        public override int Id
		{
			get
			{
				return EventId;
			}
		}

        private BetterList<int> m_ParamList = new BetterList<int>();

        public BetterList<int> ParamList
        {
            get { return m_ParamList; }
        }

        public enum ShowMode
        {
            Default,
            Except
        }

        public ShowMode Mode
        {
            private set;
            get;
        }

        public override void Clear()
		{
            m_ParamList.Clear();
            Mode = ShowMode.Default;
        }

        public ShowCharacterEventArgs Fill(ShowMode mode,params int[] showIds)
		{
            Mode = mode;
            foreach (int id in showIds)
            {
                m_ParamList.Add(id);
            }
            return this;
        }

        public ShowCharacterEventArgs Fill(ShowMode mode, BetterList<int> paramIdList)
        {
            Mode = mode;
            foreach (int id in paramIdList)
            {
                m_ParamList.Add(id);
            }
            return this;
        }
    }
}
